The invention relates to voice over Internet protocol (VOIP) communications, and more specifically to methods and apparatus used to establish a VOIP communications session with a mobile device.
Many mobile communications and computing devices are now configured to load and run application programs that can provide virtually any sort of functionality. And because many of these mobile communications and computing devices are able to establish a link to the Internet, either via a wireless router or via a data channel of a cellular data network, it is possible for an application running on a mobile device to communicate via the Internet. Examples of such mobile communications and computing devices include the Apple iPhone™ and various mobile phones that utilize the Android™ operating system.
Various service providers have created communications applications that can be loaded and run on a mobile communications device such as the Apple iPhone™. Some communications applications provide functionality that allows a VOIP service provider to establish a VOIP communications channel with a mobile communications device via an Internet connection or a cellular data connection that is maintained by the mobile communications device. When a mobile communications device is running one of these communications applications, it is possible for a VOIP service provider to establish a VOIP telephone call between the mobile communications device and a third party.
Many mobile communications devices are configured to run only one or two applications simultaneously. And this fact can be problematic if one is attempting to establish a VOIP communications channel with a mobile communications device. If the communications application that provides the functionality for establishing a VOIP communications channel is not actually running on a mobile device, it is not possible to setup a new VOIP communications channel with the mobile device.
Many users are willing to download and install a service provider's communications application. However, once the communications application is installed, it is not usually running on the user's mobile device. Most of the time, either some other application is running, or no applications are actively running.
Because of these facts, when a calling party attempts to establish a VOIP telephone call to a called party's mobile communications device via a VOIP service provider, it is usually impossible for the VOIP service provider to complete the telephone call to the called party's mobile device. As noted, because the communications application is usually not running on the mobile device, the service provider cannot establish a new VOIP telephone call to the called party's mobile device.
Even when an application is actively running on a mobile device, it may be advantageous to delegate reception of incoming communications attempts to a general-purpose notification service. For example, a VOIP application installed on a mobile device may use industry standard SIP protocol, via UDP transport, to establish and maintain telephone calls. However, keeping a communications path constantly open for incoming calls requires frequent exchanges of information between the VOIP service provider and the mobile device. And such frequent communications can unacceptably reduce battery life.
While there are techniques to reduce the frequency of information exchanges, such as using the TCP transport method rather than UDP, these techniques also have drawbacks. The communications protocol is less well-adopted in the industry, and/or it may be more prone to lost calls whenever the mobile device switches connection methods or is otherwise assigned a new IP address.
By using a general-purpose notification service, the VOIP application installed on a mobile device can benefit from a common channel. For example, this may permit the VOIP application to use a high-quality WiFi connection for voice, while allowing it to turn off the WiFi radio except when a call is actually in progress.